#ifndef _IMENUCOMPONENT_H
#define _IMENUCOMPONENT_H

#include <vector>
#include <memory>

class IMenuComponent {
  public:
    virtual void show() = 0;

    virtual int checkType(int id) = 0;

    virtual void print(long id) = 0;

    virtual std::vector<std::shared_ptr<IMenuComponent>> getchilden() = 0;

    virtual void add(IMenuComponent * items) = 0;

    virtual void setText(const std::string & text) = 0;

    virtual void setDesc(const std::string & desc) = 0;


  protected:
    std::string desc;

    std::string text;

};
#endif
